package streamAPI;

import java.util.Comparator;
import java.util.stream.Stream;

public class 有状态的转换2_5 {
public static void main(String[] args) {
//	流转换都是无状态的，当从一个已经过滤或映射的流中获取某个元素时，结果并不依赖于之前的元素
	/*无状态中间操作是指元素的处理不受前面元素的影响
	有状态的中间操作必须等到所有元素处理之后才知道最终结果，比如排序是有状态操作，在读取所有元素之前并不能确定排序结果*/
//	有状态转换
	Stream<String> of = Stream.of("11","111","1","21");
//	Stream<String> unique = of.distinct();
//	unique.forEach(System.out::println);
	//不用流也可以对集合进行排序
	Stream<String> longestFirst=of.sorted(Comparator.comparing(String::length).reversed());
	longestFirst.forEach(System.out::println);
}
}
